﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using Helena.Areas.Productos.Models;
using Helena.Areas.Campanas.Models;
using Helena.Areas.Categorias.Models;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel;

namespace Helena.Areas.Entradas.Models
{
    public class DetalleEntradaView
    {
        public int ID { set; get; }

        [DisplayName("Estado")]
        public bool Estado { get; set; }

        [Required]
        [DisplayName("Codigo de la entrada")]
        public int EntradaID { get; set; }

        [Required]
        [DisplayName("Producto")]
        public int ProductoID { get; set; }
        public string NombreProducto { get; set; }

        [DisplayName("Proveedor")]
        public int ProveedorID { get; set; }

        [DisplayName("Cantidad")]
        public double Cantidad { get; set; }

        [DisplayName("P.U.")]
        public decimal PrecioU { get; set; }

        [DisplayName("Sub-Total")]
        public decimal Subtotal { get; set; }

        [DisplayName("IGV")]
        public decimal Igv { get; set; }

        [DisplayName("Total")]
        public decimal Total { get; set; }

        public DetalleEntradaView(DetalleEntrada detalle)
        {
            this.ID = detalle.ID;
            this.Estado = detalle.Estado;
            this.EntradaID = detalle.EntradaID;
            this.ProductoID = detalle.ProductoID;
            this.NombreProducto = detalle.NombreProducto;
            this.Cantidad = detalle.Cantidad;
            this.PrecioU = detalle.PrecioU;
            this.Subtotal = detalle.Subtotal;
            this.Igv = detalle.Igv;
            this.Total = detalle.Total;
        }

        public DetalleEntradaView()
        {
            NombreProducto = "";
            Estado = true;
        }


        public DetalleEntrada deserializa(InterfazLogicaEntrada logica)
        {
            return new DetalleEntrada
            {
                ID = this.ID,
                Estado = this.Estado,
                ProductoID = this.ProductoID,
                NombreProducto=this.NombreProducto,
                ProveedorID=this.ProveedorID,
                EntradaID = this.EntradaID,
                Cantidad = this.Cantidad,
                PrecioU = this.PrecioU,
                Subtotal = this.Subtotal,
                Igv = this.Igv,
                Total = this.Total
            };
        }
    }
}